home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
(A)P
/
(A)P1.ADF
/
Cycloids
/
hypocycloid2.h
< prev
next >
Wrap
C/C++ Source or Header
|
1987-05-25
|
5KB
|
166 lines
/* hypocycloid2.h--definitions, etc with a little help from Lattice et al */
/* gadgets courtesy of John Draper -- thanks */
#include "exec/types.h"
#include "exec/nodes.h"
#include "exec/lists.h"
#include "exec/ports.h"
#include "exec/devices.h"
#include "devices/keymap.h"
#include "graphics/regions.h"
#include "graphics/copper.h"
#include "graphics/gels.h"
#include "graphics/gfxbase.h"
#include "graphics/gfx.h"
#include "graphics/sprite.h"
#include "graphics/clip.h"
#include "graphics/view.h"
#include "graphics/rastport.h"
#include "graphics/layers.h"
#include "libraries/dos.h"
#include "lattice/stdio.h"
#include "lattice/math.h"
#include "intuition/intuition.h"
#include "hardware/dmabits.h"
#include "hardware/custom.h"
#include "hardware/blit.h"
#include "graphics/text.h"
#define NL 0
long GfxBase = 0; /* Base of graphics library */
long IntuitionBase = 0; /* Base of Intuition library */
struct Window *OpenWindow();
struct IntuiMessage *message;
struct InputEvent *Intuition();
struct Screen *OpenScreen();
struct TextAttr TestFont = {
"topaz.font",TOPAZ_SIXTY,FS_NORMAL,FPF_ROMFONT, /* Define text font for screen */
};
USHORT class; /* Intu event class */
USHORT code; /* Intu event code */
struct Window *w; /* Lots of pointers for lots of things */
struct RastPort *rp;
struct ViewPort *vp;
struct Screen *screen;
#define height 14
struct SpriteImage {
UWORD posctl[2];
UWORD sprdata[2][height];
UWORD reserved[2];
};
/********************Sprite-Pointer-Defines*********************/
struct SpriteImage PointImage = {
100,100,
0x0000, 0x3ffe,
0x0000, 0x3ffe,
0x0080, 0x3ffe,
0x0080, 0x1ffc,
0x0080, 0x1ffc,
0x0080, 0x0ff8,
0x0080, 0x0ff8,
0x0000, 0x07f0,
0x0080, 0x07f0,
0x0080, 0x07f0,
0x0000, 0x03e0,
0x0000, 0x03e0,
0x0000, 0x01c0,
0x0000, 0x0080,
NULL,NULL
};
int MathBase;
int MathTransBase;
union kludge1
{
FLOAT num1;
int i1;
} k1;
union kludge2
{
FLOAT num2;
int i2;
} k2;
union kludge3
{
FLOAT num3;
int i3;
} k3;
union kludge4
{
FLOAT num4;
int i4;
} k4;
/************************ Screen Defines ***********************************/
struct NewScreen ns = {
0,0, /* start pos.*/
320,200,5, /* width height depth (5 bit planes) */
0,2, /* detail pen, block pen */
0, /* viewing mode (normal 320x200) */
CUSTOMSCREEN, /* screen type */
&TestFont, /* font */
NULL, /* screen title */
NULL,
NULL, /* gadget pointer */
};
/************************ Window Defines ***********************************/
struct NewWindow nw = {
0,0, /* Starting corner */
320,200, /* Width, height */
0,3, /* detail, block pens */
CLOSEWINDOW | MENUPICK | GADGETDOWN | GADGETUP
| REFRESHWINDOW | MOUSEBUTTONS | MOUSEMOVE, /* IDCMP flags */
SMART_REFRESH | ACTIVATE | BORDERLESS | WINDOWCLOSE
| REPORTMOUSE | GIMMEZEROZERO,
/* Window flags */
NULL, /* Pointer to first gadget */
NULL, /* Pointer to checkmark */
" Hypocycloid", /* title */
NULL, /* screen pointer */
NULL, /* bitmap pointer */
0,0,0,0, /* sizing limits */
CUSTOMSCREEN /* type of screen */
};
/************************ Set-Up routine ***********************************
* This function opens the Intuition and Graphics libraries, then *
* opens up our custom screen and window, defining screen colors, *
* size, etc... *
***************************************************************************/
initwind()
{
GfxBase = OpenLibrary("graphics.library",0); /* Get graphics driver */
if(GfxBase == NULL)
{
printf("Can't open graphics library...\n");
exit();
}
if((MathBase=OpenLibrary("mathffp.library",0)) < 1) {
printf("n\n*** ERROR *** Can't open mathffp.library");
exit();
}
if((MathTransBase=OpenLibrary("mathtrans.library",0)) < 1) {
printf("n\n*** ERROR *** Can't open mathtrans.library");
exit();
}
IntuitionBase = OpenLibrary("intuition.library",0); /*Get Intuition*/
if(IntuitionBase == NULL)
{
printf("Can't open intuition library...\n");
exit();
}
screen = OpenScreen(&ns); /* Open our new screen */
if(screen == NULL)
{
exit(0);
}
nw.Screen = screen;
w = OpenWindow(&nw); /* Open our new window */
rp = w->RPort; /* Get the raster port pointer */
vp = &screen->ViewPort; /* Get the view port pointer */
SetDrMd(rp,JAM1);
}